package com.wxxymaker.aopauth;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;
import org.springframework.util.ObjectUtils;

/**
 * @Author: Soft
 * @Date: 2018/5/3 12:56
 * @Desc: service参数验证，仅能验证参数本书
 */
//@Aspect
//@Component
//public class ServiceArgsAuth {
//    @Pointcut("execution(* com.wxxymaker.service.impl.*.*(..))")
//    public void getPointcut() {}
//
//    @Before("getPointcut()")
//    public void before(JoinPoint point) {
//        // 遍历方法中所有参数并验证
//        for (Object arg : point.getArgs()) {
//            this.argumentAuth(arg);
//        }
//    }
//
//    private void argumentAuth(Object o) {
//        if (ObjectUtils.isEmpty(o)) {
//            throw new RuntimeException("参数不应该为空");
//        }
//
//        if (o instanceof Number) { // 判断数字必须大于0
//            String[] ns = o.toString().split("\\.");
//            if (o.toString().startsWith("-")) {
//                throw new RuntimeException(o + " <= 0");
//            }
//            if (Integer.parseInt(ns[0]) <= 0) {
//                if (ns.length <= 1) {
//                    throw new RuntimeException(o + " <= 0");
//                } else if (Integer.parseInt(ns[1]) <= 0) {
//                    throw new RuntimeException(o + " <= 0");
//                }
//            }
//        }
//    }
//}
//
